package me.yangzhi.day_08.adapter;

import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.viewpager2.adapter.FragmentStateAdapter;

import java.util.List;

/**
 * ViewPagerAdapter - ViewPager2的Fragment适配器
 * 
 * 主要功能：
 * 1. 管理ViewPager2中的Fragment页面
 * 2. 处理Fragment的创建和切换
 * 3. 提供页面数量信息
 * 
 * 使用场景：
 * 1. 底部导航栏对应的页面切换
 * 2. 首页、外卖、订单、我的等页面的管理
 */
public class ViewPagerAdapter extends FragmentStateAdapter {

    // Fragment页面列表
    private final List<Fragment> fragments;

    /**
     * 构造函数
     * 
     * @param fragmentActivity Fragment所在的Activity
     * @param fragments Fragment列表
     * 
     * 功能：
     * 1. 初始化适配器
     * 2. 保存Fragment列表引用
     */
    public ViewPagerAdapter(@NonNull FragmentActivity fragmentActivity, List<Fragment> fragments) {
        super(fragmentActivity);
        this.fragments = fragments;
    }

    /**
     * 创建指定位置的Fragment
     * 
     * @param position Fragment在列表中的位置
     * @return 创建的Fragment实例
     * 
     * 说明：
     * 1. 根据position返回对应的Fragment
     * 2. 用于ViewPager2的页面切换
     */
    @NonNull
    @Override
    public Fragment createFragment(int position) {
        return fragments.get(position);
    }

    /**
     * 获取Fragment数量
     * 
     * @return Fragment列表的大小
     * 
     * 说明：
     * 1. 返回ViewPager2中可切换的页面数量
     * 2. 用于ViewPager2的页面管理
     */
    @Override
    public int getItemCount() {
        return fragments.size();
    }
} 